package com_6;

import java.util.ArrayList;
import java.util.function.Function;
import java.util.stream.Stream;

public class Test6 {//定义一个测试类
    public static void main(String[] args) {//main方法入口
        ArrayList<String> list = new ArrayList<>();//创建集合对象//
        list.add("诸葛亮");//添加元素到集合中
        list.add("周瑜");//添加元素到集合
        list.add("刘备");//添加元素到集合
        ArrayList<String> list1 = new ArrayList<>();//创建集合对象//
        list1.add("范冰冰");//添加元素到集合
        list1.add("赵圆圆");//添加元素到集合
        list1.add("古力娜扎");//添加元素到集合
        Stream<String> manlist = list.stream().filter(s -> s.startsWith("刘")).limit(3);
        //通过集合对象获取流再调用filter方法进行中间操作，再调用limit方法跳过，最终得到男演员集合流
        Stream<String>womenlist = list1.stream().skip(3).filter(s -> s.startsWith("赵"));
        //通过集合二对象获取流再调用skip方法跳过元素，再调用filter方法进行中间操作筛选元素，最终得到女演员集合
//        Stream.concat(manlist, womenlist).map(actor::new).forEach(p-> System.out.println(p.getName()));
        Stream.concat(manlist, womenlist).map(new Function<String, Object>() {
            @Override
            public Object apply(String s) {
                actor a=new actor(s);
                return a;
            }
        }).forEach(p-> System.out.println(p));

        //使用Stream类中的concat方法使用合并的流，调用map方法，里面实际是一个function接口函数，
        // 对合并的流进行转化为对象，最后再调用foreach方法在控制台使用对象调用getname方法获取筛选的对象
    }
}
